package com.utopa.canal.client.handler;

import com.alibaba.otter.canal.protocol.CanalEntry;

/**
 * 把 RowData 转化为 pojo 对象
 *
 * @author authorZhao
 * @date 2020年04月17日
 */
@FunctionalInterface
public interface RowDataHandler {
    /**
     * 把 CanalEntry.RowData 转化为对应的对象，注意 pojo 必须和 mysql 严格对应
     *
     * @param rowData   canal 同步的数据，对应行
     * @param clazz     需要转化的 pojo 对象
     * @param eventType 操作类型
     * @param <T>
     * @return
     */
    <T> T changeType(CanalEntry.RowData rowData, Class<T> clazz, CanalEntry.EventType eventType);
}
